/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2019，所有权利保留。
 * <p>
 * 项目名：	tod-rs-api
 * 文件名：	RsValue.java
 * 模块说明：
 * 修改历史：
 * 2019年5月28日 - huzexiong - 创建。
 */
package com.base.model;

import java.io.Serializable;
import java.util.Map;

/**
 * 响应结果。
 *
 * @author huzexiong
 * @since 1.0.0
 */
////@ApiModel(description = "响应结果")
public class ResponseValue<T> implements Serializable {
    public static final Integer OK = 2000; // 响应结果成功时的结果码。
    public static final Integer BIZ_EXCEPTION = 5000; // 业务异常时的结果码。
    public static final Integer API_ACCESS_SIGNATURE_ERROR = 5001;// 签名认证失败
    public static final Integer API_ACCESS_REQUEST_PARAMS_ERROR = 5002;// 签名参数错误
    public static final Integer API_ACCESS_REQUEST_EXPIRED = 5003;// 签名过期
    public static final Integer API_ACCESS_BUSY = 5004;// 请求过于频繁，请稍候再试
    public static final Integer INVOICE_DISABLED = 5005;// 开票已被禁用
    public static final Integer WX_REQUEST_ERROR = 5006;// 请求微信接口时发生异常
    public static final Integer SYSTEM_EXCEPTION = 6000;// 系统异常
    private static final long serialVersionUID = 1433993708808120337L;
    //@ApiModelProperty(value = "结果码", required = true, example = "2000")
    private Integer code;
    //@ApiModelProperty(value = "返回码描述", example = "接口调用成功")
    private String msg;
    //@ApiModelProperty(value = "服务端返回的具体结果数据")
    private T data;
    //@ApiModelProperty(value = "请求响应的记录数", example = "例如：10，一般只在列表查询时返回")
    private Long total = 0L;
    //@ApiModelProperty(value = "是否还有更多记录", example = "例如：true，一般只在列表查询时返回")
    private Boolean more;
    //@ApiModelProperty(value = "输入字段提示", example = "一般为表单提交时，后端对表单进行整体校验，返回给前端相应字段的校验结果。")
    private Map<String, String> fields;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public Boolean getMore() {
        return more;
    }

    public void setMore(Boolean more) {
        this.more = more;
    }

    public Map<String, String> getFields() {
        return fields;
    }

    public void setFields(Map<String, String> fields) {
        this.fields = fields;
    }
}
